﻿using Abp.AutoMapper;
using Mt.Site.Core.Navigations;
using Mt.Site.Core.Navigations.Entities;
using System;
using System.ComponentModel.DataAnnotations;

namespace Mt.Site.Application.Navigation.Dto
{
    [AutoMapTo(typeof(Menu))]
    public class UpdateMenuItemInput
    {
        public Guid Id { get; set; }

        [Required]
        [StringLength(Menu.MaxDisplayNameLength)]
        public string DisplayName { get; set; }

        public MenuDisplayType DisplayType { get; set; }

        public MenuDeviceType DeviceType { get; set; }

        public bool IsActive { get; set; }

        public bool IsNavigation4FrontEnd { get; set; }

        public bool IsSpecial { get; set; }

        public bool HomeRecommendation { get; set; }

        public bool ChannelRecommendation { get; set; }

        public bool AutoSynchronous { get; set; }

        public bool AutoSynchronousForContent { get; set; }

        public Guid? BackEndModuleId { get; set; }

        public Guid? FrontEndPageId { get; set; }

        [StringLength(RouteSetting.MaxUrlLength)]
        public string RouteUrlStr { get; set; }

        public DateTime? LastModificationTime { get; set; }

        [StringLength(250)]
        public string MenuItemGroups { get; set; }

        public string LocalDisplayName { get; set; }

        [StringLength(Menu.MaxCustomUrlLength)]
        public string CustomUrl { get; set; }

        [StringLength(Menu.MaxCustomDataLength)]
        public string CustomData { get; set; }

        public BackendMenuType BackendMenuType { get; set; }

        public string BackendIcon { get; set; }
    }
}
